home *** CD-ROM | disk | FTP | other *** search
/ IRIX Base Documentation 2002 November / SGI IRIX Base Documentation 2002 November.iso / usr / share / catman / u_man / cat1 / perldelta.z / perldelta
Encoding:
Text File  |  2002-10-03  |  80.5 KB  |  1,981 lines

  1.  
  2.  
  3.  
  4. PPPPEEEERRRRLLLLDDDDEEEELLLLTTTTAAAA((((1111))))                                                      PPPPEEEERRRRLLLLDDDDEEEELLLLTTTTAAAA((((1111))))
  5.  
  6.  
  7.  
  8. NNNNAAAAMMMMEEEE
  9.      perldelta - what's new for perl5.004
  10.  
  11. DDDDEEEESSSSCCCCRRRRIIIIPPPPTTTTIIIIOOOONNNN
  12.      This document describes differences between the 5.003 release (as
  13.      documented in _P_r_o_g_r_a_m_m_i_n_g _P_e_r_l, second edition--the Camel Book) and this
  14.      one.
  15.  
  16. SSSSuuuuppppppppoooorrrrtttteeeedddd EEEEnnnnvvvviiiirrrroooonnnnmmmmeeeennnnttttssss
  17.      Perl5.004 builds out of the box on Unix, Plan 9, LynxOS, VMS, OS/2, QNX,
  18.      AmigaOS, and Windows NT.  Perl runs on Windows 95 as well, but it cannot
  19.      be built there, for lack of a reasonable command interpreter.
  20.  
  21. CCCCoooorrrreeee CCCChhhhaaaannnnggggeeeessss
  22.      Most importantly, many bugs were fixed, including several security
  23.      problems.  See the _C_h_a_n_g_e_s file in the distribution for details.
  24.  
  25.      LLLLiiiisssstttt aaaassssssssiiiiggggnnnnmmmmeeeennnntttt ttttoooo %%%%EEEENNNNVVVV works
  26.  
  27.      %ENV = () and %ENV = @list now work as expected (except on VMS where it
  28.      generates a fatal error).
  29.  
  30.      """"CCCCaaaannnn''''tttt llllooooccccaaaatttteeee FFFFoooooooo....ppppmmmm iiiinnnn @@@@IIIINNNNCCCC" error now lists @INC
  31.  
  32.      CCCCoooommmmppppiiiillllaaaattttiiiioooonnnn ooooppppttttiiiioooonnnn:::: BBBBiiiinnnnaaaarrrryyyy ccccoooommmmppppaaaattttiiiibbbbiiiilllliiiittttyyyy wwwwiiiitttthhhh 5555....000000003333
  33.  
  34.      There is a new Configure question that asks if you want to maintain
  35.      binary compatibility with Perl 5.003.  If you choose binary
  36.      compatibility, you do not have to recompile your extensions, but you
  37.      might have symbol conflicts if you embed Perl in another application,
  38.      just as in the 5.003 release.  By default, binary compatibility is
  39.      preserved at the expense of symbol table pollution.
  40.  
  41.      $$$$PPPPEEEERRRRLLLL5555OOOOPPPPTTTT environment variable
  42.  
  43.      You may now put Perl options in the $PERL5OPT environment variable.
  44.      Unless Perl is running with taint checks, it will interpret this variable
  45.      as if its contents had appeared on a "#!perl" line at the beginning of
  46.      your script, except that hyphens are optional.  PERL5OPT may only be used
  47.      to set the following switches: ----[[[[DDDDIIIIMMMMUUUUddddmmmmwwww]]]].
  48.  
  49.      LLLLiiiimmmmiiiittttaaaattttiiiioooonnnnssss oooonnnn ----MMMM, ----mmmm, and ----TTTT options
  50.  
  51.      The -M and -m options are no longer allowed on the #! line of a script.
  52.      If a script needs a module, it should invoke it with the use pragma.
  53.  
  54.      The ----TTTT option is also forbidden on the #! line of a script, unless it was
  55.      present on the Perl command line.  Due to the way #!  works, this usually
  56.      means that ----TTTT must be in the first argument.  Thus:
  57.  
  58.  
  59.  
  60.  
  61.  
  62.  
  63.                                                                         PPPPaaaaggggeeee 1111
  64.  
  65.  
  66.  
  67.  
  68.  
  69.  
  70. PPPPEEEERRRRLLLLDDDDEEEELLLLTTTTAAAA((((1111))))                                                      PPPPEEEERRRRLLLLDDDDEEEELLLLTTTTAAAA((((1111))))
  71.  
  72.  
  73.  
  74.          #!/usr/bin/perl -T -w
  75.  
  76.      will probably work for an executable script invoked as scriptname, while:
  77.  
  78.          #!/usr/bin/perl -w -T
  79.  
  80.      will probably fail under the same conditions.  (Non-Unix systems will
  81.      probably not follow this rule.)  But perl scriptname is guaranteed to
  82.      fail, since then there is no chance of ----TTTT being found on the command line
  83.      before it is found on the #! line.
  84.  
  85.      MMMMoooorrrreeee pppprrrreeeecccciiiisssseeee wwwwaaaarrrrnnnniiiinnnnggggssss
  86.  
  87.      If you removed the ----wwww option from your Perl 5.003 scripts because it made
  88.      Perl too verbose, we recommend that you try putting it back when you
  89.      upgrade to Perl 5.004.  Each new perl version tends to remove some
  90.      undesirable warnings, while adding new warnings that may catch bugs in
  91.      your scripts.
  92.  
  93.      DDDDeeeepppprrrreeeeccccaaaatttteeeedddd:::: IIIInnnnhhhheeeerrrriiiitttteeeedddd AAAAUUUUTTTTOOOOLLLLOOOOAAAADDDD for non-methods
  94.  
  95.      Before Perl 5.004, AUTOLOAD functions were looked up as methods (using
  96.      the @ISA hierarchy), even when the function to be autoloaded was called
  97.      as a plain function (e.g. Foo::bar()), not a method (e.g. Foo->bar() or
  98.      $obj->bar()).
  99.  
  100.      Perl 5.005 will use method lookup only for methods' AUTOLOADs.  However,
  101.      there is a significant base of existing code that may be using the old
  102.      behavior.  So, as an interim step, Perl 5.004 issues an optional warning
  103.      when a non-method uses an inherited AUTOLOAD.
  104.  
  105.      The simple rule is:  Inheritance will not work when autoloading non-
  106.      methods.  The simple fix for old code is:  In any module that used to
  107.      depend on inheriting AUTOLOAD for non-methods from a base class named
  108.      BaseClass, execute *AUTOLOAD = \&BaseClass::AUTOLOAD during startup.
  109.  
  110.      PPPPrrrreeeevvvviiiioooouuuussssllllyyyy ddddeeeepppprrrreeeeccccaaaatttteeeedddd %%%%OOOOVVVVEEEERRRRLLLLOOOOAAAADDDD is no longer usable
  111.  
  112.      Using %OVERLOAD to define overloading was deprecated in 5.003.
  113.      Overloading is now defined using the overload pragma. %OVERLOAD is still
  114.      used internally but should not be used by Perl scripts. See the _o_v_e_r_l_o_a_d
  115.      manpage for more details.
  116.  
  117.      SSSSuuuubbbbrrrroooouuuuttttiiiinnnneeee aaaarrrrgggguuuummmmeeeennnnttttssss ccccrrrreeeeaaaatttteeeedddd oooonnnnllllyyyy wwwwhhhheeeennnn tttthhhheeeeyyyy''''rrrreeee mmmmooooddddiiiiffffiiiieeeedddd
  118.  
  119.      In Perl 5.004, nonexistent array and hash elements used as subroutine
  120.      parameters are brought into existence only if they are actually assigned
  121.      to (via @_).
  122.  
  123.      Earlier versions of Perl vary in their handling of such arguments.  Perl
  124.      versions 5.002 and 5.003 always brought them into existence.  Perl
  125.      versions 5.000 and 5.001 brought them into existence only if they were
  126.  
  127.  
  128.  
  129.                                                                         PPPPaaaaggggeeee 2222
  130.  
  131.  
  132.  
  133.  
  134.  
  135.  
  136. PPPPEEEERRRRLLLLDDDDEEEELLLLTTTTAAAA((((1111))))                                                      PPPPEEEERRRRLLLLDDDDEEEELLLLTTTTAAAA((((1111))))
  137.  
  138.  
  139.  
  140.      not the first argument (which was almost certainly a bug).  Earlier
  141.      versions of Perl never brought them into existence.
  142.  
  143.      For example, given this code:
  144.  
  145.           undef @a; undef %a;
  146.           sub show { print $_[0] };
  147.           sub change { $_[0]++ };
  148.           show($a[2]);
  149.           change($a{b});
  150.  
  151.      After this code executes in Perl 5.004, $a{b} exists but $a[2] does not.
  152.      In Perl 5.002 and 5.003, both $a{b} and $a[2] would have existed (but
  153.      $a[2]'s value would have been undefined).
  154.  
  155.      GGGGrrrroooouuuupppp vvvveeeeccccttttoooorrrr cccchhhhaaaannnnggggeeeeaaaabbbblllleeee wwwwiiiitttthhhh $$$$))))
  156.  
  157.      The $) special variable has always (well, in Perl 5, at least) reflected
  158.      not only the current effective group, but also the group list as returned
  159.      by the getgroups() C function (if there is one).  However, until this
  160.      release, there has not been a way to call the setgroups() C function from
  161.      Perl.
  162.  
  163.      In Perl 5.004, assigning to $) is exactly symmetrical with examining it:
  164.      The first number in its string value is used as the effective gid; if
  165.      there are any numbers after the first one, they are passed to the
  166.      setgroups() C function (if there is one).
  167.  
  168.      FFFFiiiixxxxeeeedddd ppppaaaarrrrssssiiiinnnngggg ooooffff $$$$$$$$<<<<ddddiiiiggggiiiitttt>>>>,,,, &&&&$$$$<<<<ddddiiiiggggiiiitttt>>>>,,,, eeeettttcccc....
  169.  
  170.      Perl versions before 5.004 misinterpreted any type marker followed by "$"
  171.      and a digit.  For example, "$$0" was incorrectly taken to mean "${$}0"
  172.      instead of "${$0}".  This bug is (mostly) fixed in Perl 5.004.
  173.  
  174.      However, the developers of Perl 5.004 could not fix this bug completely,
  175.      because at least two widely-used modules depend on the old meaning of
  176.      "$$0" in a string.  So Perl 5.004 still interprets "$$<digit>" in the old
  177.      (broken) way inside strings; but it generates this message as a warning.
  178.      And in Perl 5.005, this special treatment will cease.
  179.  
  180.      FFFFiiiixxxxeeeedddd llllooooccccaaaalllliiiizzzzaaaattttiiiioooonnnn ooooffff $$$$<<<<ddddiiiiggggiiiitttt>>>>,,,, $$$$&&&&,,,, eeeettttcccc....
  181.  
  182.      Perl versions before 5.004 did not always properly localize the regex-
  183.      related special variables.  Perl 5.004 does localize them, as the
  184.      documentation has always said it should.  This may result in $1, $2, etc.
  185.      no longer being set where existing programs use them.
  186.  
  187.      NNNNoooo rrrreeeesssseeeettttttttiiiinnnngggg ooooffff $$$$.... oooonnnn iiiimmmmpppplllliiiicccciiiitttt cccclllloooosssseeee
  188.  
  189.      The documentation for Perl 5.0 has always stated that $. is _n_o_t reset
  190.      when an already-open file handle is reopened with no intervening call to
  191.      close.  Due to a bug, perl versions 5.000 through 5.003 _d_i_d reset $.
  192.  
  193.  
  194.  
  195.                                                                         PPPPaaaaggggeeee 3333
  196.  
  197.  
  198.  
  199.  
  200.  
  201.  
  202. PPPPEEEERRRRLLLLDDDDEEEELLLLTTTTAAAA((((1111))))                                                      PPPPEEEERRRRLLLLDDDDEEEELLLLTTTTAAAA((((1111))))
  203.  
  204.  
  205.  
  206.      under that circumstance; Perl 5.004 does not.
  207.  
  208.      wwwwaaaannnnttttaaaarrrrrrrraaaayyyy may return undef
  209.  
  210.      The wantarray operator returns true if a subroutine is expected to return
  211.      a list, and false otherwise.  In Perl 5.004, wantarray can also return
  212.      the undefined value if a subroutine's return value will not be used at
  213.      all, which allows subroutines to avoid a time-consuming calculation of a
  214.      return value if it isn't going to be used.
  215.  
  216.      eeeevvvvaaaallll EEEEXXXXPPPPRRRR determines value of EXPR in scalar context
  217.  
  218.      Perl (version 5) used to determine the value of EXPR inconsistently,
  219.      sometimes incorrectly using the surrounding context for the
  220.      determination.  Now, the value of EXPR (before being parsed by eval) is
  221.      always determined in a scalar context.  Once parsed, it is executed as
  222.      before, by providing the context that the scope surrounding the eval
  223.      provided.  This change makes the behavior Perl4 compatible, besides
  224.      fixing bugs resulting from the inconsistent behavior.  This program:
  225.  
  226.          @a = qw(time now is time);
  227.          print eval @a;
  228.          print '|', scalar eval @a;
  229.  
  230.      used to print something like "timenowis881399109|4", but now (and in
  231.      perl4) prints "4|4".
  232.  
  233.      CCCChhhhaaaannnnggggeeeessss ttttoooo ttttaaaaiiiinnnnttttiiiinnnngggg cccchhhheeeecccckkkkssss
  234.  
  235.      A bug in previous versions may have failed to detect some insecure
  236.      conditions when taint checks are turned on.  (Taint checks are used in
  237.      setuid or setgid scripts, or when explicitly turned on with the -T
  238.      invocation option.)  Although it's unlikely, this may cause a
  239.      previously-working script to now fail -- which should be construed as a
  240.      blessing, since that indicates a potentially-serious security hole was
  241.      just plugged.
  242.  
  243.      The new restrictions when tainting include:
  244.  
  245.      No glob() or <*>
  246.           These operators may spawn the C shell (csh), which cannot be made
  247.           safe.  This restriction will be lifted in a future version of Perl
  248.           when globbing is implemented without the use of an external program.
  249.  
  250.      No spawning if tainted $CDPATH, $ENV, $BASH_ENV
  251.           These environment variables may alter the behavior of spawned
  252.           programs (especially shells) in ways that subvert security.  So now
  253.           they are treated as dangerous, in the manner of $IFS and $PATH.
  254.  
  255.      No spawning if tainted $TERM doesn't look like a terminal name
  256.           Some termcap libraries do unsafe things with $TERM.  However, it
  257.           would be unnecessarily harsh to treat all $TERM values as unsafe,
  258.  
  259.  
  260.  
  261.                                                                         PPPPaaaaggggeeee 4444
  262.  
  263.  
  264.  
  265.  
  266.  
  267.  
  268. PPPPEEEERRRRLLLLDDDDEEEELLLLTTTTAAAA((((1111))))                                                      PPPPEEEERRRRLLLLDDDDEEEELLLLTTTTAAAA((((1111))))
  269.  
  270.  
  271.  
  272.           since only shell metacharacters can cause trouble in $TERM.  So a
  273.           tainted $TERM is considered to be safe if it contains only
  274.           alphanumerics, underscores, dashes, and colons, and unsafe if it
  275.           contains other characters (including whitespace).
  276.  
  277.      NNNNeeeewwww OOOOppppccccooooddddeeee mmmmoooodddduuuulllleeee aaaannnndddd rrrreeeevvvviiiisssseeeedddd SSSSaaaaffffeeee mmmmoooodddduuuulllleeee
  278.  
  279.      A new Opcode module supports the creation, manipulation and application
  280.      of opcode masks.  The revised Safe module has a new API and is
  281.      implemented using the new Opcode module.  Please read the new Opcode and
  282.      Safe documentation.
  283.  
  284.      EEEEmmmmbbbbeeeeddddddddiiiinnnngggg iiiimmmmpppprrrroooovvvveeeemmmmeeeennnnttttssss
  285.  
  286.      In older versions of Perl it was not possible to create more than one
  287.      Perl interpreter instance inside a single process without leaking like a
  288.      sieve and/or crashing.  The bugs that caused this behavior have all been
  289.      fixed.  However, you still must take care when embedding Perl in a C
  290.      program.  See the updated perlembed manpage for tips on how to manage
  291.      your interpreters.
  292.  
  293.      IIIInnnntttteeeerrrrnnnnaaaallll cccchhhhaaaannnnggggeeee:::: FFFFiiiilllleeeeHHHHaaaannnnddddlllleeee ccccllllaaaassssssss bbbbaaaasssseeeedddd oooonnnn IIIIOOOO::::::::**** ccccllllaaaasssssssseeeessss
  294.  
  295.      File handles are now stored internally as type IO::Handle.  The
  296.      FileHandle module is still supported for backwards compatibility, but it
  297.      is now merely a front end to the IO::* modules -- specifically,
  298.      IO::Handle, IO::Seekable, and IO::File.  We suggest, but do not require,
  299.      that you use the IO::* modules in new code.
  300.  
  301.      In harmony with this change, *GLOB{FILEHANDLE} is now just a backward-
  302.      compatible synonym for *GLOB{IO}.
  303.  
  304.      IIIInnnntttteeeerrrrnnnnaaaallll cccchhhhaaaannnnggggeeee:::: PPPPeeeerrrrllllIIIIOOOO aaaabbbbssssttttrrrraaaaccccttttiiiioooonnnn iiiinnnntttteeeerrrrffffaaaacccceeee
  305.  
  306.      It is now possible to build Perl with AT&T's sfio IO package instead of
  307.      stdio.  See the _p_e_r_l_a_p_i_o manpage for more details, and the _I_N_S_T_A_L_L file
  308.      for how to use it.
  309.  
  310.      NNNNeeeewwww aaaannnndddd cccchhhhaaaannnnggggeeeedddd ssssyyyynnnnttttaaaaxxxx
  311.  
  312.      $coderef->(PARAMS)
  313.           A subroutine reference may now be suffixed with an arrow and a
  314.           (possibly empty) parameter list.  This syntax denotes a call of the
  315.           referenced subroutine, with the given parameters (if any).
  316.  
  317.           This new syntax follows the pattern of $hashref->{FOO} and $aryref-
  318.           >[$foo]: You may now write &$subref($foo) as $subref->($foo).  All
  319.           of these arrow terms may be chained; thus, &{$table->{FOO}}($bar)
  320.           may now be written $table->{FOO}->($bar).
  321.  
  322.  
  323.  
  324.  
  325.  
  326.  
  327.                                                                         PPPPaaaaggggeeee 5555
  328.  
  329.  
  330.  
  331.  
  332.  
  333.  
  334. PPPPEEEERRRRLLLLDDDDEEEELLLLTTTTAAAA((((1111))))                                                      PPPPEEEERRRRLLLLDDDDEEEELLLLTTTTAAAA((((1111))))
  335.  
  336.  
  337.  
  338.      NNNNeeeewwww aaaannnndddd cccchhhhaaaannnnggggeeeedddd bbbbuuuuiiiillllttttiiiinnnn ccccoooonnnnssssttttaaaannnnttttssss
  339.  
  340.      __PACKAGE__
  341.           The current package name at compile time, or the undefined value if
  342.           there is no current package (due to a package; directive).  Like
  343.           __FILE__ and __LINE__, __PACKAGE__ does _n_o_t interpolate into
  344.           strings.
  345.  
  346.      NNNNeeeewwww aaaannnndddd cccchhhhaaaannnnggggeeeedddd bbbbuuuuiiiillllttttiiiinnnn vvvvaaaarrrriiiiaaaabbbblllleeeessss
  347.  
  348.      $^E  Extended error message on some platforms.  (Also known as
  349.           $EXTENDED_OS_ERROR if you use English).
  350.  
  351.      $^H  The current set of syntax checks enabled by use strict.  See the
  352.           documentation of strict for more details.  Not actually new, but
  353.           newly documented.  Because it is intended for internal use by Perl
  354.           core components, there is no use English long name for this
  355.           variable.
  356.  
  357.      $^M  By default, running out of memory it is not trappable.  However, if
  358.           compiled for this, Perl may use the contents of $^M as an emergency
  359.           pool after _d_i_e()ing with this message.  Suppose that your Perl were
  360.           compiled with -DPERL_EMERGENCY_SBRK and used Perl's malloc.  Then
  361.  
  362.               $^M = 'a' x (1<<16);
  363.  
  364.           would allocate a 64K buffer for use when in emergency.  See the
  365.           _I_N_S_T_A_L_L file for information on how to enable this option.  As a
  366.           disincentive to casual use of this advanced feature, there is no use
  367.           English long name for this variable.
  368.  
  369.      NNNNeeeewwww aaaannnndddd cccchhhhaaaannnnggggeeeedddd bbbbuuuuiiiillllttttiiiinnnn ffffuuuunnnnccccttttiiiioooonnnnssss
  370.  
  371.      delete on slices
  372.           This now works.  (e.g. delete @ENV{'PATH', 'MANPATH'})
  373.  
  374.      flock
  375.           is now supported on more platforms, prefers fcntl to lockf when
  376.           emulating, and always flushes before (un)locking.
  377.  
  378.      printf and sprintf
  379.           Perl now implements these functions itself; it doesn't use the C
  380.           library function _s_p_r_i_n_t_f() any more, except for floating-point
  381.           numbers, and even then only known flags are allowed.  As a result,
  382.           it is now possible to know which conversions and flags will work,
  383.           and what they will do.
  384.  
  385.           The new conversions in Perl's _s_p_r_i_n_t_f() are:
  386.  
  387.  
  388.  
  389.  
  390.  
  391.  
  392.  
  393.                                                                         PPPPaaaaggggeeee 6666
  394.  
  395.  
  396.  
  397.  
  398.  
  399.  
  400. PPPPEEEERRRRLLLLDDDDEEEELLLLTTTTAAAA((((1111))))                                                      PPPPEEEERRRRLLLLDDDDEEEELLLLTTTTAAAA((((1111))))
  401.  
  402.  
  403.  
  404.              %i   a synonym for %d
  405.              %p   a pointer (the address of the Perl value, in hexadecimal)
  406.              %n   special: *stores* the number of characters output so far
  407.                   into the next variable in the parameter list
  408.  
  409.           The new flags that go between the % and the conversion are:
  410.  
  411.              #    prefix octal with "0", hex with "0x"
  412.              h    interpret integer as C type "short" or "unsigned short"
  413.              V    interpret integer as Perl's standard integer type
  414.  
  415.           Also, where a number would appear in the flags, an asterisk ("*")
  416.           may be used instead, in which case Perl uses the next item in the
  417.           parameter list as the given number (that is, as the field width or
  418.           precision).  If a field width obtained through "*" is negative, it
  419.           has the same effect as the '-' flag: left-justification.
  420.  
  421.           See the sprintf entry in the _p_e_r_l_f_u_n_c manpage for a complete list of
  422.           conversion and flags.
  423.  
  424.      keys as an lvalue
  425.           As an lvalue, keys allows you to increase the number of hash buckets
  426.           allocated for the given hash.  This can gain you a measure of
  427.           efficiency if you know the hash is going to get big.  (This is
  428.           similar to pre-extending an array by assigning a larger number to
  429.           $#array.)  If you say
  430.  
  431.               keys %hash = 200;
  432.  
  433.           then %hash will have at least 200 buckets allocated for it.  These
  434.           buckets will be retained even if you do %hash = (); use undef %hash
  435.           if you want to free the storage while %hash is still in scope.  You
  436.           can't shrink the number of buckets allocated for the hash using keys
  437.           in this way (but you needn't worry about doing this by accident, as
  438.           trying has no effect).
  439.  
  440.      my() in Control Structures
  441.           You can now use _m_y() (with or without the parentheses) in the
  442.           control expressions of control structures such as:
  443.  
  444.               while (defined(my $line = <>)) {
  445.                   $line = lc $line;
  446.               } continue {
  447.                   print $line;
  448.               }
  449.  
  450.  
  451.  
  452.  
  453.  
  454.  
  455.  
  456.  
  457.  
  458.  
  459.                                                                         PPPPaaaaggggeeee 7777
  460.  
  461.  
  462.  
  463.  
  464.  
  465.  
  466. PPPPEEEERRRRLLLLDDDDEEEELLLLTTTTAAAA((((1111))))                                                      PPPPEEEERRRRLLLLDDDDEEEELLLLTTTTAAAA((((1111))))
  467.  
  468.  
  469.  
  470.               if ((my $answer = <STDIN>) =~ /^y(es)?$/i) {
  471.                   user_agrees();
  472.               } elsif ($answer =~ /^n(o)?$/i) {
  473.                   user_disagrees();
  474.               } else {
  475.                   chomp $answer;
  476.                   die "`$answer' is neither `yes' nor `no'";
  477.               }
  478.  
  479.           Also, you can declare a foreach loop control variable as lexical by
  480.           preceding it with the word "my".  For example, in:
  481.  
  482.               foreach my $i (1, 2, 3) {
  483.                   some_function();
  484.               }
  485.  
  486.           $i is a lexical variable, and the scope of $i extends to the end of
  487.           the loop, but not beyond it.
  488.  
  489.           Note that you still cannot use _m_y() on global punctuation variables
  490.           such as $_ and the like.
  491.  
  492.      pack() and unpack()
  493.           A new format 'w' represents a BER compressed integer (as defined in
  494.           ASN.1).  Its format is a sequence of one or more bytes, each of
  495.           which provides seven bits of the total value, with the most
  496.           significant first.  Bit eight of each byte is set, except for the
  497.           last byte, in which bit eight is clear.
  498.  
  499.           If 'p' or 'P' are given undef as values, they now generate a NULL
  500.           pointer.
  501.  
  502.           Both _p_a_c_k() and _u_n_p_a_c_k() now fail when their templates contain
  503.           invalid types.  (Invalid types used to be ignored.)
  504.  
  505.      sysseek()
  506.           The new _s_y_s_s_e_e_k() operator is a variant of _s_e_e_k() that sets and gets
  507.           the file's system read/write position, using the _l_s_e_e_k(2) system
  508.           call.  It is the only reliable way to seek before using _s_y_s_r_e_a_d() or
  509.           _s_y_s_w_r_i_t_e().  Its return value is the new position, or the undefined
  510.           value on failure.
  511.  
  512.      use VERSION
  513.           If the first argument to use is a number, it is treated as a version
  514.           number instead of a module name.  If the version of the Perl
  515.           interpreter is less than VERSION, then an error message is printed
  516.           and Perl exits immediately.  Because use occurs at compile time,
  517.           this check happens immediately during the compilation process,
  518.           unlike require VERSION, which waits until runtime for the check.
  519.           This is often useful if you need to check the current Perl version
  520.           before useing library modules which have changed in incompatible
  521.           ways from older versions of Perl.  (We try not to do this more than
  522.  
  523.  
  524.  
  525.                                                                         PPPPaaaaggggeeee 8888
  526.  
  527.  
  528.  
  529.  
  530.  
  531.  
  532. PPPPEEEERRRRLLLLDDDDEEEELLLLTTTTAAAA((((1111))))                                                      PPPPEEEERRRRLLLLDDDDEEEELLLLTTTTAAAA((((1111))))
  533.  
  534.  
  535.  
  536.           we have to.)
  537.  
  538.      use Module VERSION LIST
  539.           If the VERSION argument is present between Module and LIST, then the
  540.           use will call the VERSION method in class Module with the given
  541.           version as an argument.  The default VERSION method, inherited from
  542.           the UNIVERSAL class, croaks if the given version is larger than the
  543.           value of the variable $Module::VERSION.  (Note that there is not a
  544.           comma after VERSION!)
  545.  
  546.           This version-checking mechanism is similar to the one currently used
  547.           in the Exporter module, but it is faster and can be used with
  548.           modules that don't use the Exporter.  It is the recommended method
  549.           for new code.
  550.  
  551.      prototype(FUNCTION)
  552.           Returns the prototype of a function as a string (or undef if the
  553.           function has no prototype).  FUNCTION is a reference to or the name
  554.           of the function whose prototype you want to retrieve.  (Not actually
  555.           new; just never documented before.)
  556.  
  557.      srand
  558.           The default seed for srand, which used to be time, has been changed.
  559.           Now it's a heady mix of difficult-to-predict system-dependent
  560.           values, which should be sufficient for most everyday purposes.
  561.  
  562.           Previous to version 5.004, calling rand without first calling srand
  563.           would yield the same sequence of random numbers on most or all
  564.           machines.  Now, when perl sees that you're calling rand and haven't
  565.           yet called srand, it calls srand with the default seed. You should
  566.           still call srand manually if your code might ever be run on a pre-
  567.           5.004 system, of course, or if you want a seed other than the
  568.           default.
  569.  
  570.      $_ as Default
  571.           Functions documented in the Camel to default to $_ now in fact do,
  572.           and all those that do are so documented in the _p_e_r_l_f_u_n_c manpage.
  573.  
  574.      m//gc does not reset search position on failure
  575.           The m//g match iteration construct has always reset its target
  576.           string's search position (which is visible through the pos operator)
  577.           when a match fails; as a result, the next m//g match after a failure
  578.           starts again at the beginning of the string.  With Perl 5.004, this
  579.           reset may be disabled by adding the "c" (for "continue") modifier,
  580.           i.e. m//gc.  This feature, in conjunction with the \G zero-width
  581.           assertion, makes it possible to chain matches together.  See the
  582.           _p_e_r_l_o_p manpage and the _p_e_r_l_r_e manpage.
  583.  
  584.      m//x ignores whitespace before ?*+{}
  585.           The m//x construct has always been intended to ignore all unescaped
  586.           whitespace.  However, before Perl 5.004, whitespace had the effect
  587.           of escaping repeat modifiers like "*" or "?"; for example, /a *b/x
  588.  
  589.  
  590.  
  591.                                                                         PPPPaaaaggggeeee 9999
  592.  
  593.  
  594.  
  595.  
  596.  
  597.  
  598. PPPPEEEERRRRLLLLDDDDEEEELLLLTTTTAAAA((((1111))))                                                      PPPPEEEERRRRLLLLDDDDEEEELLLLTTTTAAAA((((1111))))
  599.  
  600.  
  601.  
  602.           was (mis)interpreted as /a\*b/x.  This bug has been fixed in 5.004.
  603.  
  604.      nested sub{} closures work now
  605.           Prior to the 5.004 release, nested anonymous functions didn't work
  606.           right.  They do now.
  607.  
  608.      formats work right on changing lexicals
  609.           Just like anonymous functions that contain lexical variables that
  610.           change (like a lexical index variable for a foreach loop), formats
  611.           now work properly.  For example, this silently failed before
  612.           (printed only zeros), but is fine now:
  613.  
  614.               my $i;
  615.               foreach $i ( 1 .. 10 ) {
  616.                   write;
  617.               }
  618.               format =
  619.                   my i is @#
  620.                   $i
  621.               .
  622.  
  623.           However, it still fails (without a warning) if the foreach is within
  624.           a subroutine:
  625.  
  626.               my $i;
  627.               sub foo {
  628.                 foreach $i ( 1 .. 10 ) {
  629.                   write;
  630.                 }
  631.               }
  632.               foo;
  633.               format =
  634.                   my i is @#
  635.                   $i
  636.               .
  637.  
  638.  
  639.      NNNNeeeewwww bbbbuuuuiiiillllttttiiiinnnn mmmmeeeetttthhhhooooddddssss
  640.  
  641.      The UNIVERSAL package automatically contains the following methods that
  642.      are inherited by all other classes:
  643.  
  644.      isa(CLASS)
  645.           isa returns _t_r_u_e if its object is blessed into a subclass of CLASS
  646.  
  647.           isa is also exportable and can be called as a sub with two
  648.           arguments. This allows the ability to check what a reference points
  649.           to. Example:
  650.  
  651.               use UNIVERSAL qw(isa);
  652.  
  653.  
  654.  
  655.  
  656.  
  657.                                                                        PPPPaaaaggggeeee 11110000
  658.  
  659.  
  660.  
  661.  
  662.  
  663.  
  664. PPPPEEEERRRRLLLLDDDDEEEELLLLTTTTAAAA((((1111))))                                                      PPPPEEEERRRRLLLLDDDDEEEELLLLTTTTAAAA((((1111))))
  665.  
  666.  
  667.  
  668.               if(isa($ref, 'ARRAY')) {
  669.                  ...
  670.               }
  671.  
  672.  
  673.      can(METHOD)
  674.           can checks to see if its object has a method called METHOD, if it
  675.           does then a reference to the sub is returned; if it does not then
  676.           _u_n_d_e_f is returned.
  677.  
  678.      VERSION( [NEED] )
  679.           VERSION returns the version number of the class (package).  If the
  680.           NEED argument is given then it will check that the current version
  681.           (as defined by the $VERSION variable in the given package) not less
  682.           than NEED; it will die if this is not the case.  This method is
  683.           normally called as a class method.  This method is called
  684.           automatically by the VERSION form of use.
  685.  
  686.               use A 1.2 qw(some imported subs);
  687.               # implies:
  688.               A->VERSION(1.2);
  689.  
  690.  
  691.      NNNNOOOOTTTTEEEE:::: can directly uses Perl's internal code for method lookup, and isa
  692.      uses a very similar method and caching strategy. This may cause strange
  693.      effects if the Perl code dynamically changes @ISA in any package.
  694.  
  695.      You may add other methods to the UNIVERSAL class via Perl or XS code.
  696.      You do not need to use UNIVERSAL in order to make these methods available
  697.      to your program.  This is necessary only if you wish to have isa
  698.      available as a plain subroutine in the current package.
  699.  
  700.      TTTTIIIIEEEEHHHHAAAANNNNDDDDLLLLEEEE nnnnoooowwww ssssuuuuppppppppoooorrrrtttteeeedddd
  701.  
  702.      See the _p_e_r_l_t_i_e manpage for other kinds of _t_i_e()s.
  703.  
  704.      TIEHANDLE classname, LIST
  705.           This is the constructor for the class.  That means it is expected to
  706.           return an object of some sort. The reference can be used to hold
  707.           some internal information.
  708.  
  709.               sub TIEHANDLE {
  710.                   print "<shout>\n";
  711.                   my $i;
  712.                   return bless \$i, shift;
  713.               }
  714.  
  715.  
  716.      PRINT this, LIST
  717.           This method will be triggered every time the tied handle is printed
  718.           to.  Beyond its self reference it also expects the list that was
  719.           passed to the print function.
  720.  
  721.  
  722.  
  723.                                                                        PPPPaaaaggggeeee 11111111
  724.  
  725.  
  726.  
  727.  
  728.  
  729.  
  730. PPPPEEEERRRRLLLLDDDDEEEELLLLTTTTAAAA((((1111))))                                                      PPPPEEEERRRRLLLLDDDDEEEELLLLTTTTAAAA((((1111))))
  731.  
  732.  
  733.  
  734.               sub PRINT {
  735.                   $r = shift;
  736.                   $$r++;
  737.                   return print join( $, => map {uc} @_), $\;
  738.               }
  739.  
  740.  
  741.      PRINTF this, LIST
  742.           This method will be triggered every time the tied handle is printed
  743.           to with the printf() function.  Beyond its self reference it also
  744.           expects the format and list that was passed to the printf function.
  745.  
  746.               sub PRINTF {
  747.                   shift;
  748.                     my $fmt = shift;
  749.                   print sprintf($fmt, @_)."\n";
  750.               }
  751.  
  752.  
  753.      READ this LIST
  754.           This method will be called when the handle is read from via the read
  755.           or sysread functions.
  756.  
  757.               sub READ {
  758.                   $r = shift;
  759.                   my($buf,$len,$offset) = @_;
  760.                   print "READ called, \$buf=$buf, \$len=$len, \$offset=$offset";
  761.               }
  762.  
  763.  
  764.      READLINE this
  765.           This method will be called when the handle is read from. The method
  766.           should return undef when there is no more data.
  767.  
  768.               sub READLINE {
  769.                   $r = shift;
  770.                   return "PRINT called $$r times\n"
  771.               }
  772.  
  773.  
  774.      GETC this
  775.           This method will be called when the getc function is called.
  776.  
  777.               sub GETC { print "Don't GETC, Get Perl"; return "a"; }
  778.  
  779.  
  780.      DESTROY this
  781.           As with the other types of ties, this method will be called when the
  782.           tied handle is about to be destroyed. This is useful for debugging
  783.           and possibly for cleaning up.
  784.  
  785.  
  786.  
  787.  
  788.  
  789.                                                                        PPPPaaaaggggeeee 11112222
  790.  
  791.  
  792.  
  793.  
  794.  
  795.  
  796. PPPPEEEERRRRLLLLDDDDEEEELLLLTTTTAAAA((((1111))))                                                      PPPPEEEERRRRLLLLDDDDEEEELLLLTTTTAAAA((((1111))))
  797.  
  798.  
  799.  
  800.               sub DESTROY {
  801.                   print "</shout>\n";
  802.               }
  803.  
  804.  
  805.      MMMMaaaalllllllloooocccc eeeennnnhhhhaaaannnncccceeeemmmmeeeennnnttttssss
  806.  
  807.      If perl is compiled with the malloc included with the perl distribution
  808.      (that is, if perl -V:d_mymalloc is 'define') then you can print memory
  809.      statistics at runtime by running Perl thusly:
  810.  
  811.        env PERL_DEBUG_MSTATS=2 perl your_script_here
  812.  
  813.      The value of 2 means to print statistics after compilation and on exit;
  814.      with a value of 1, the statistics are printed only on exit.  (If you want
  815.      the statistics at an arbitrary time, you'll need to install the optional
  816.      module Devel::Peek.)
  817.  
  818.      Three new compilation flags are recognized by malloc.c.  (They have no
  819.      effect if perl is compiled with system _m_a_l_l_o_c().)
  820.  
  821.      -DPERL_EMERGENCY_SBRK
  822.           If this macro is defined, running out of memory need not be a fatal
  823.           error: a memory pool can allocated by assigning to the special
  824.           variable $^M.  See the section on $^_M.
  825.  
  826.      -DPACK_MALLOC
  827.           Perl memory allocation is by bucket with sizes close to powers of
  828.           two.  Because of these malloc overhead may be big, especially for
  829.           data of size exactly a power of two.  If PACK_MALLOC is defined,
  830.           perl uses a slightly different algorithm for small allocations (up
  831.           to 64 bytes long), which makes it possible to have overhead down to
  832.           1 byte for allocations which are powers of two (and appear quite
  833.           often).
  834.  
  835.           Expected memory savings (with 8-byte alignment in alignbytes) is
  836.           about 20% for typical Perl usage.  Expected slowdown due to
  837.           additional malloc overhead is in fractions of a percent (hard to
  838.           measure, because of the effect of saved memory on speed).
  839.  
  840.      -DTWO_POT_OPTIMIZE
  841.           Similarly to PACK_MALLOC, this macro improves allocations of data
  842.           with size close to a power of two; but this works for big
  843.           allocations (starting with 16K by default).  Such allocations are
  844.           typical for big hashes and special-purpose scripts, especially image
  845.           processing.
  846.  
  847.           On recent systems, the fact that perl requires 2M from system for 1M
  848.           allocation will not affect speed of execution, since the tail of
  849.           such a chunk is not going to be touched (and thus will not require
  850.           real memory).  However, it may result in a premature out-of-memory
  851.           error.  So if you will be manipulating very large blocks with sizes
  852.  
  853.  
  854.  
  855.                                                                        PPPPaaaaggggeeee 11113333
  856.  
  857.  
  858.  
  859.  
  860.  
  861.  
  862. PPPPEEEERRRRLLLLDDDDEEEELLLLTTTTAAAA((((1111))))                                                      PPPPEEEERRRRLLLLDDDDEEEELLLLTTTTAAAA((((1111))))
  863.  
  864.  
  865.  
  866.           close to powers of two, it would be wise to define this macro.
  867.  
  868.           Expected saving of memory is 0-100% (100% in applications which
  869.           require most memory in such 2**n chunks); expected slowdown is
  870.           negligible.
  871.  
  872.      MMMMiiiisssscccceeeellllllllaaaannnneeeeoooouuuussss eeeeffffffffiiiicccciiiieeeennnnccccyyyy eeeennnnhhhhaaaannnncccceeeemmmmeeeennnnttttssss
  873.  
  874.      Functions that have an empty prototype and that do nothing but return a
  875.      fixed value are now inlined (e.g. sub PI () { 3.14159 }).
  876.  
  877.      Each unique hash key is only allocated once, no matter how many hashes
  878.      have an entry with that key.  So even if you have 100 copies of the same
  879.      hash, the hash keys never have to be reallocated.
  880.  
  881. SSSSuuuuppppppppoooorrrrtttt ffffoooorrrr MMMMoooorrrreeee OOOOppppeeeerrrraaaattttiiiinnnngggg SSSSyyyysssstttteeeemmmmssss
  882.      Support for the following operating systems is new in Perl 5.004.
  883.  
  884.      WWWWiiiinnnn33332222
  885.  
  886.      Perl 5.004 now includes support for building a "native" perl under
  887.      Windows NT, using the Microsoft Visual C++ compiler (versions 2.0 and
  888.      above) or the Borland C++ compiler (versions 5.02 and above).  The
  889.      resulting perl can be used under Windows 95 (if it is installed in the
  890.      same directory locations as it got installed in Windows NT).  This port
  891.      includes support for perl extension building tools like the _M_a_k_e_M_a_k_e_r
  892.      manpage and the _h_2_x_s manpage, so that many extensions available on the
  893.      Comprehensive Perl Archive Network (CPAN) can now be readily built under
  894.      Windows NT.  See http://www.perl.com/ for more information on CPAN and
  895.      _R_E_A_D_M_E._w_i_n_3_2 in the perl distribution for more details on how to get
  896.      started with building this port.
  897.  
  898.      There is also support for building perl under the Cygwin32 environment.
  899.      Cygwin32 is a set of GNU tools that make it possible to compile and run
  900.      many UNIX programs under Windows NT by providing a mostly UNIX-like
  901.      interface for compilation and execution.  See _R_E_A_D_M_E._c_y_g_w_i_n_3_2 in the perl
  902.      distribution for more details on this port and how to obtain the Cygwin32
  903.      toolkit.
  904.  
  905.      PPPPllllaaaannnn 9999
  906.  
  907.      See _R_E_A_D_M_E._p_l_a_n_9 in the perl distribution.
  908.  
  909.      QQQQNNNNXXXX
  910.  
  911.      See _R_E_A_D_M_E._q_n_x in the perl distribution.
  912.  
  913.      AAAAmmmmiiiiggggaaaaOOOOSSSS
  914.  
  915.      See _R_E_A_D_M_E._a_m_i_g_a_o_s in the perl distribution.
  916.  
  917.  
  918.  
  919.  
  920.  
  921.                                                                        PPPPaaaaggggeeee 11114444
  922.  
  923.  
  924.  
  925.  
  926.  
  927.  
  928. PPPPEEEERRRRLLLLDDDDEEEELLLLTTTTAAAA((((1111))))                                                      PPPPEEEERRRRLLLLDDDDEEEELLLLTTTTAAAA((((1111))))
  929.  
  930.  
  931.  
  932. PPPPrrrraaaaggggmmmmaaaattttaaaa
  933.      Six new pragmatic modules exist:
  934.  
  935.      use autouse MODULE => qw(sub1 sub2 sub3)
  936.           Defers require MODULE until someone calls one of the specified
  937.           subroutines (which must be exported by MODULE).  This pragma should
  938.           be used with caution, and only when necessary.
  939.  
  940.      use blib
  941.  
  942.      use blib 'dir'
  943.           Looks for MakeMaker-like '_b_l_i_b' directory structure starting in _d_i_r
  944.           (or current directory) and working back up to five levels of parent
  945.           directories.
  946.  
  947.           Intended for use on command line with ----MMMM option as a way of testing
  948.           arbitrary scripts against an uninstalled version of a package.
  949.  
  950.      use constant NAME => VALUE
  951.           Provides a convenient interface for creating compile-time constants,
  952.           See the section on _C_o_n_s_t_a_n_t _F_u_n_c_t_i_o_n_s in the _p_e_r_l_s_u_b manpage.
  953.  
  954.      use locale
  955.           Tells the compiler to enable (or disable) the use of POSIX locales
  956.           for builtin operations.
  957.  
  958.           When use locale is in effect, the current LC_CTYPE locale is used
  959.           for regular expressions and case mapping; LC_COLLATE for string
  960.           ordering; and LC_NUMERIC for numeric formating in printf and sprintf
  961.           (but nnnnooootttt in print).  LC_NUMERIC is always used in write, since
  962.           lexical scoping of formats is problematic at best.
  963.  
  964.           Each use locale or no locale affects statements to the end of the
  965.           enclosing BLOCK or, if not inside a BLOCK, to the end of the current
  966.           file.  Locales can be switched and queried with _P_O_S_I_X::_s_e_t_l_o_c_a_l_e().
  967.  
  968.           See the _p_e_r_l_l_o_c_a_l_e manpage for more information.
  969.  
  970.      use ops
  971.           Disable unsafe opcodes, or any named opcodes, when compiling Perl
  972.           code.
  973.  
  974.      use vmsish
  975.           Enable VMS-specific language features.  Currently, there are three
  976.           VMS-specific features available: 'status', which makes $? and system
  977.           return genuine VMS status values instead of emulating POSIX; 'exit',
  978.           which makes exit take a genuine VMS status value instead of assuming
  979.           that exit 1 is an error; and 'time', which makes all times relative
  980.           to the local time zone, in the VMS tradition.
  981.  
  982.  
  983.  
  984.  
  985.  
  986.  
  987.                                                                        PPPPaaaaggggeeee 11115555
  988.  
  989.  
  990.  
  991.  
  992.  
  993.  
  994. PPPPEEEERRRRLLLLDDDDEEEELLLLTTTTAAAA((((1111))))                                                      PPPPEEEERRRRLLLLDDDDEEEELLLLTTTTAAAA((((1111))))
  995.  
  996.  
  997.  
  998. MMMMoooodddduuuulllleeeessss
  999.      RRRReeeeqqqquuuuiiiirrrreeeedddd UUUUppppddddaaaatttteeeessss
  1000.  
  1001.      Though Perl 5.004 is compatible with almost all modules that work with
  1002.      Perl 5.003, there are a few exceptions:
  1003.  
  1004.          Module   Required Version for Perl 5.004
  1005.          ------   -------------------------------
  1006.          Filter   Filter-1.12
  1007.          LWP      libwww-perl-5.08
  1008.          Tk       Tk400.202 (-w makes noise)
  1009.  
  1010.      Also, the majordomo mailing list program, version 1.94.1, doesn't work
  1011.      with Perl 5.004 (nor with perl 4), because it executes an invalid regular
  1012.      expression.  This bug is fixed in majordomo version 1.94.2.
  1013.  
  1014.      IIIInnnnssssttttaaaallllllllaaaattttiiiioooonnnn ddddiiiirrrreeeeccccttttoooorrrriiiieeeessss
  1015.  
  1016.      The _i_n_s_t_a_l_l_p_e_r_l script now places the Perl source files for extensions in
  1017.      the architecture-specific library directory, which is where the shared
  1018.      libraries for extensions have always been.  This change is intended to
  1019.      allow administrators to keep the Perl 5.004 library directory unchanged
  1020.      from a previous version, without running the risk of binary
  1021.      incompatibility between extensions' Perl source and shared libraries.
  1022.  
  1023.      MMMMoooodddduuuulllleeee iiiinnnnffffoooorrrrmmmmaaaattttiiiioooonnnn ssssuuuummmmmmmmaaaarrrryyyy
  1024.  
  1025.      Brand new modules, arranged by topic rather than strictly alphabetically:
  1026.  
  1027.          CGI.pm               Web server interface ("Common Gateway Interface")
  1028.          CGI/Apache.pm        Support for Apache's Perl module
  1029.          CGI/Carp.pm          Log server errors with helpful context
  1030.          CGI/Fast.pm          Support for FastCGI (persistent server process)
  1031.          CGI/Push.pm          Support for server push
  1032.          CGI/Switch.pm        Simple interface for multiple server types
  1033.  
  1034.          CPAN                 Interface to Comprehensive Perl Archive Network
  1035.          CPAN::FirstTime      Utility for creating CPAN configuration file
  1036.          CPAN::Nox            Runs CPAN while avoiding compiled extensions
  1037.  
  1038.          IO.pm                Top-level interface to IO::* classes
  1039.          IO/File.pm           IO::File extension Perl module
  1040.          IO/Handle.pm         IO::Handle extension Perl module
  1041.          IO/Pipe.pm           IO::Pipe extension Perl module
  1042.          IO/Seekable.pm       IO::Seekable extension Perl module
  1043.          IO/Select.pm         IO::Select extension Perl module
  1044.          IO/Socket.pm         IO::Socket extension Perl module
  1045.  
  1046.          Opcode.pm            Disable named opcodes when compiling Perl code
  1047.  
  1048.          ExtUtils/Embed.pm    Utilities for embedding Perl in C programs
  1049.          ExtUtils/testlib.pm  Fixes up @INC to use just-built extension
  1050.  
  1051.  
  1052.  
  1053.                                                                        PPPPaaaaggggeeee 11116666
  1054.  
  1055.  
  1056.  
  1057.  
  1058.  
  1059.  
  1060. PPPPEEEERRRRLLLLDDDDEEEELLLLTTTTAAAA((((1111))))                                                      PPPPEEEERRRRLLLLDDDDEEEELLLLTTTTAAAA((((1111))))
  1061.  
  1062.  
  1063.  
  1064.          FindBin.pm           Find path of currently executing program
  1065.  
  1066.          Class/Struct.pm      Declare struct-like datatypes as Perl classes
  1067.          File/stat.pm         By-name interface to Perl's builtin stat
  1068.          Net/hostent.pm       By-name interface to Perl's builtin gethost*
  1069.          Net/netent.pm        By-name interface to Perl's builtin getnet*
  1070.          Net/protoent.pm      By-name interface to Perl's builtin getproto*
  1071.          Net/servent.pm       By-name interface to Perl's builtin getserv*
  1072.          Time/gmtime.pm       By-name interface to Perl's builtin gmtime
  1073.          Time/localtime.pm    By-name interface to Perl's builtin localtime
  1074.          Time/tm.pm           Internal object for Time::{gm,local}time
  1075.          User/grent.pm        By-name interface to Perl's builtin getgr*
  1076.          User/pwent.pm        By-name interface to Perl's builtin getpw*
  1077.  
  1078.          Tie/RefHash.pm       Base class for tied hashes with references as keys
  1079.  
  1080.          UNIVERSAL.pm         Base class for *ALL* classes
  1081.  
  1082.  
  1083.      FFFFccccnnnnttttllll
  1084.  
  1085.      New constants in the existing Fcntl modules are now supported, provided
  1086.      that your operating system happens to support them:
  1087.  
  1088.          F_GETOWN F_SETOWN
  1089.          O_ASYNC O_DEFER O_DSYNC O_FSYNC O_SYNC
  1090.          O_EXLOCK O_SHLOCK
  1091.  
  1092.      These constants are intended for use with the Perl operators _s_y_s_o_p_e_n()
  1093.      and _f_c_n_t_l() and the basic database modules like SDBM_File.  For the exact
  1094.      meaning of these and other Fcntl constants please refer to your operating
  1095.      system's documentation for _f_c_n_t_l() and _o_p_e_n().
  1096.  
  1097.      In addition, the Fcntl module now provides these constants for use with
  1098.      the Perl operator _f_l_o_c_k():
  1099.  
  1100.              LOCK_SH LOCK_EX LOCK_NB LOCK_UN
  1101.  
  1102.      These constants are defined in all environments (because where there is
  1103.      no _f_l_o_c_k() system call, Perl emulates it).  However, for historical
  1104.      reasons, these constants are not exported unless they are explicitly
  1105.      requested with the ":flock" tag (e.g. use Fcntl ':flock').
  1106.  
  1107.      IIIIOOOO
  1108.  
  1109.      The IO module provides a simple mechanism to load all of the IO modules
  1110.      at one go.  Currently this includes:
  1111.  
  1112.  
  1113.  
  1114.  
  1115.  
  1116.  
  1117.  
  1118.  
  1119.                                                                        PPPPaaaaggggeeee 11117777
  1120.  
  1121.  
  1122.  
  1123.  
  1124.  
  1125.  
  1126. PPPPEEEERRRRLLLLDDDDEEEELLLLTTTTAAAA((((1111))))                                                      PPPPEEEERRRRLLLLDDDDEEEELLLLTTTTAAAA((((1111))))
  1127.  
  1128.  
  1129.  
  1130.           IO::Handle
  1131.           IO::Seekable
  1132.           IO::File
  1133.           IO::Pipe
  1134.           IO::Socket
  1135.  
  1136.      For more information on any of these modules, please see its respective
  1137.      documentation.
  1138.  
  1139.      MMMMaaaatttthhhh::::::::CCCCoooommmmpppplllleeeexxxx
  1140.  
  1141.      The Math::Complex module has been totally rewritten, and now supports
  1142.      more operations.  These are overloaded:
  1143.  
  1144.           + - * / ** <=> neg ~ abs sqrt exp log sin cos atan2 "" (stringify)
  1145.  
  1146.      And these functions are now exported:
  1147.  
  1148.          pi i Re Im arg
  1149.          log10 logn ln cbrt root
  1150.          tan
  1151.          csc sec cot
  1152.          asin acos atan
  1153.          acsc asec acot
  1154.          sinh cosh tanh
  1155.          csch sech coth
  1156.          asinh acosh atanh
  1157.          acsch asech acoth
  1158.          cplx cplxe
  1159.  
  1160.  
  1161.      MMMMaaaatttthhhh::::::::TTTTrrrriiiigggg
  1162.  
  1163.      This new module provides a simpler interface to parts of Math::Complex
  1164.      for those who need trigonometric functions only for real numbers.
  1165.  
  1166.      DDDDBBBB____FFFFiiiilllleeee
  1167.  
  1168.      There have been quite a few changes made to DB_File. Here are a few of
  1169.      the highlights:
  1170.  
  1171.      +o    Fixed a handful of bugs.
  1172.  
  1173.      +o    By public demand, added support for the standard hash function
  1174.           _e_x_i_s_t_s().
  1175.  
  1176.      +o    Made it compatible with Berkeley DB 1.86.
  1177.  
  1178.      +o    Made negative subscripts work with RECNO interface.
  1179.  
  1180.  
  1181.  
  1182.  
  1183.  
  1184.  
  1185.                                                                        PPPPaaaaggggeeee 11118888
  1186.  
  1187.  
  1188.  
  1189.  
  1190.  
  1191.  
  1192. PPPPEEEERRRRLLLLDDDDEEEELLLLTTTTAAAA((((1111))))                                                      PPPPEEEERRRRLLLLDDDDEEEELLLLTTTTAAAA((((1111))))
  1193.  
  1194.  
  1195.  
  1196.      +o    Changed the default flags from O_RDWR to O_CREAT|O_RDWR and the
  1197.           default mode from 0640 to 0666.
  1198.  
  1199.      +o    Made DB_File automatically import the _o_p_e_n() constants (O_RDWR,
  1200.           O_CREAT etc.) from Fcntl, if available.
  1201.  
  1202.      +o    Updated documentation.
  1203.  
  1204.      Refer to the HISTORY section in DB_File.pm for a complete list of
  1205.      changes. Everything after DB_File 1.01 has been added since 5.003.
  1206.  
  1207.      NNNNeeeetttt::::::::PPPPiiiinnnngggg
  1208.  
  1209.      Major rewrite - support added for both udp echo and real icmp pings.
  1210.  
  1211.      OOOObbbbjjjjeeeecccctttt----oooorrrriiiieeeennnntttteeeedddd oooovvvveeeerrrrrrrriiiiddddeeeessss ffffoooorrrr bbbbuuuuiiiillllttttiiiinnnn ooooppppeeeerrrraaaattttoooorrrrssss
  1212.  
  1213.      Many of the Perl builtins returning lists now have object-oriented
  1214.      overrides.  These are:
  1215.  
  1216.          File::stat
  1217.          Net::hostent
  1218.          Net::netent
  1219.          Net::protoent
  1220.          Net::servent
  1221.          Time::gmtime
  1222.          Time::localtime
  1223.          User::grent
  1224.          User::pwent
  1225.  
  1226.      For example, you can now say
  1227.  
  1228.          use File::stat;
  1229.          use User::pwent;
  1230.          $his = (stat($filename)->st_uid == pwent($whoever)->pw_uid);
  1231.  
  1232.  
  1233. UUUUttttiiiilllliiiittttyyyy CCCChhhhaaaannnnggggeeeessss
  1234.      ppppoooodddd2222hhhhttttmmmmllll
  1235.  
  1236.      Sends converted HTML to standard output
  1237.           The _p_o_d_2_h_t_m_l utility included with Perl 5.004 is entirely new.  By
  1238.           default, it sends the converted HTML to its standard output, instead
  1239.           of writing it to a file like Perl 5.003's _p_o_d_2_h_t_m_l did.  Use the --------
  1240.           oooouuuuttttffffiiiilllleeee====FFFFIIIILLLLEEEENNNNAAAAMMMMEEEE option to write to a file.
  1241.  
  1242.      xxxxssssuuuubbbbpppppppp
  1243.  
  1244.      void XSUBs now default to returning nothing
  1245.           Due to a documentation/implementation bug in previous versions of
  1246.           Perl, XSUBs with a return type of void have actually been returning
  1247.           one value.  Usually that value was the GV for the XSUB, but
  1248.  
  1249.  
  1250.  
  1251.                                                                        PPPPaaaaggggeeee 11119999
  1252.  
  1253.  
  1254.  
  1255.  
  1256.  
  1257.  
  1258. PPPPEEEERRRRLLLLDDDDEEEELLLLTTTTAAAA((((1111))))                                                      PPPPEEEERRRRLLLLDDDDEEEELLLLTTTTAAAA((((1111))))
  1259.  
  1260.  
  1261.  
  1262.           sometimes it was some already freed or reused value, which would
  1263.           sometimes lead to program failure.
  1264.  
  1265.           In Perl 5.004, if an XSUB is declared as returning void, it actually
  1266.           returns no value, i.e. an empty list (though there is a backward-
  1267.           compatibility exception; see below).  If your XSUB really does
  1268.           return an SV, you should give it a return type of SV *.
  1269.  
  1270.           For backward compatibility, _x_s_u_b_p_p tries to guess whether a void
  1271.           XSUB is really void or if it wants to return an SV *.  It does so by
  1272.           examining the text of the XSUB: if _x_s_u_b_p_p finds what looks like an
  1273.           assignment to ST(0), it assumes that the XSUB's return type is
  1274.           really SV *.
  1275.  
  1276. CCCC LLLLaaaannnngggguuuuaaaaggggeeee AAAAPPPPIIII CCCChhhhaaaannnnggggeeeessss
  1277.      gv_fetchmethod and perl_call_sv
  1278.           The gv_fetchmethod function finds a method for an object, just like
  1279.           in Perl 5.003.  The GV it returns may be a method cache entry.
  1280.           However, in Perl 5.004, method cache entries are not visible to
  1281.           users; therefore, they can no longer be passed directly to
  1282.           perl_call_sv.  Instead, you should use the GvCV macro on the GV to
  1283.           extract its CV, and pass the CV to perl_call_sv.
  1284.  
  1285.           The most likely symptom of passing the result of gv_fetchmethod to
  1286.           perl_call_sv is Perl's producing an "Undefined subroutine called"
  1287.           error on the _s_e_c_o_n_d call to a given method (since there is no cache
  1288.           on the first call).
  1289.  
  1290.      perl_eval_pv
  1291.           A new function handy for eval'ing strings of Perl code inside C
  1292.           code.  This function returns the value from the eval statement,
  1293.           which can be used instead of fetching globals from the symbol table.
  1294.           See the _p_e_r_l_g_u_t_s manpage, the _p_e_r_l_e_m_b_e_d manpage and the _p_e_r_l_c_a_l_l
  1295.           manpage for details and examples.
  1296.  
  1297.      Extended API for manipulating hashes
  1298.           Internal handling of hash keys has changed.  The old hashtable API
  1299.           is still fully supported, and will likely remain so.  The additions
  1300.           to the API allow passing keys as SV*s, so that tied hashes can be
  1301.           given real scalars as keys rather than plain strings (nontied hashes
  1302.           still can only use strings as keys).  New extensions must use the
  1303.           new hash access functions and macros if they wish to use SV* keys.
  1304.           These additions also make it feasible to manipulate HE*s (hash
  1305.           entries), which can be more efficient.  See the _p_e_r_l_g_u_t_s manpage for
  1306.           details.
  1307.  
  1308. DDDDooooccccuuuummmmeeeennnnttttaaaattttiiiioooonnnn CCCChhhhaaaannnnggggeeeessss
  1309.      Many of the base and library pods were updated.  These new pods are
  1310.      included in section 1:
  1311.  
  1312.  
  1313.  
  1314.  
  1315.  
  1316.  
  1317.                                                                        PPPPaaaaggggeeee 22220000
  1318.  
  1319.  
  1320.  
  1321.  
  1322.  
  1323.  
  1324. PPPPEEEERRRRLLLLDDDDEEEELLLLTTTTAAAA((((1111))))                                                      PPPPEEEERRRRLLLLDDDDEEEELLLLTTTTAAAA((((1111))))
  1325.  
  1326.  
  1327.  
  1328.      the _p_e_r_l_d_e_l_t_a manpage
  1329.           This document.
  1330.  
  1331.      the _p_e_r_l_f_a_q manpage
  1332.           Frequently asked questions.
  1333.  
  1334.      the _p_e_r_l_l_o_c_a_l_e manpage
  1335.           Locale support (internationalization and localization).
  1336.  
  1337.      the _p_e_r_l_t_o_o_t manpage
  1338.           Tutorial on Perl OO programming.
  1339.  
  1340.      the _p_e_r_l_a_p_i_o manpage
  1341.           Perl internal IO abstraction interface.
  1342.  
  1343.      the _p_e_r_l_m_o_d_l_i_b manpage
  1344.           Perl module library and recommended practice for module creation.
  1345.           Extracted from the _p_e_r_l_m_o_d manpage (which is much smaller as a
  1346.           result).
  1347.  
  1348.      the _p_e_r_l_d_e_b_u_g manpage
  1349.           Although not new, this has been massively updated.
  1350.  
  1351.      the _p_e_r_l_s_e_c manpage
  1352.           Although not new, this has been massively updated.
  1353.  
  1354. NNNNeeeewwww DDDDiiiiaaaaggggnnnnoooossssttttiiiiccccssss
  1355.      Several new conditions will trigger warnings that were silent before.
  1356.      Some only affect certain platforms.  The following new warnings and
  1357.      errors outline these.  These messages are classified as follows (listed
  1358.      in increasing order of desperation):
  1359.  
  1360.         (W) A warning (optional).
  1361.         (D) A deprecation (optional).
  1362.         (S) A severe warning (mandatory).
  1363.         (F) A fatal error (trappable).
  1364.         (P) An internal error you should never see (trappable).
  1365.         (X) A very fatal error (nontrappable).
  1366.         (A) An alien error message (not generated by Perl).
  1367.  
  1368.  
  1369.      "my" variable %s masks earlier declaration in same scope
  1370.           (W) A lexical variable has been redeclared in the same scope,
  1371.           effectively eliminating all access to the previous instance.  This
  1372.           is almost always a typographical error.  Note that the earlier
  1373.           variable will still exist until the end of the scope or until all
  1374.           closure referents to it are destroyed.
  1375.  
  1376.      %s argument is not a HASH element or slice
  1377.           (F) The argument to _d_e_l_e_t_e() must be either a hash element, such as
  1378.  
  1379.  
  1380.  
  1381.  
  1382.  
  1383.                                                                        PPPPaaaaggggeeee 22221111
  1384.  
  1385.  
  1386.  
  1387.  
  1388.  
  1389.  
  1390. PPPPEEEERRRRLLLLDDDDEEEELLLLTTTTAAAA((((1111))))                                                      PPPPEEEERRRRLLLLDDDDEEEELLLLTTTTAAAA((((1111))))
  1391.  
  1392.  
  1393.  
  1394.               $foo{$bar}
  1395.               $ref->[12]->{"susie"}
  1396.  
  1397.           or a hash slice, such as
  1398.  
  1399.               @foo{$bar, $baz, $xyzzy}
  1400.               @{$ref->[12]}{"susie", "queue"}
  1401.  
  1402.  
  1403.      Allocation too large: %lx
  1404.           (X) You can't allocate more than 64K on an MS-DOS machine.
  1405.  
  1406.      Allocation too large
  1407.           (F) You can't allocate more than 2^31+"small amount" bytes.
  1408.  
  1409.      Applying %s to %s will act on scalar(%s)
  1410.           (W) The pattern match (//), substitution (s///), and transliteration
  1411.           (tr///) operators work on scalar values.  If you apply one of them
  1412.           to an array or a hash, it will convert the array or hash to a scalar
  1413.           value -- the length of an array, or the population info of a hash --
  1414.           and then work on that scalar value.  This is probably not what you
  1415.           meant to do.  See the grep entry in the _p_e_r_l_f_u_n_c manpage and the map
  1416.           entry in the _p_e_r_l_f_u_n_c manpage for alternatives.
  1417.  
  1418.      Attempt to free nonexistent shared string
  1419.           (P) Perl maintains a reference counted internal table of strings to
  1420.           optimize the storage and access of hash keys and other strings.
  1421.           This indicates someone tried to decrement the reference count of a
  1422.           string that can no longer be found in the table.
  1423.  
  1424.      Attempt to use reference as lvalue in substr
  1425.           (W) You supplied a reference as the first argument to _s_u_b_s_t_r() used
  1426.           as an lvalue, which is pretty strange.  Perhaps you forgot to
  1427.           dereference it first.  See the substr entry in the _p_e_r_l_f_u_n_c manpage.
  1428.  
  1429.      Bareword "%s" refers to nonexistent package
  1430.           (W) You used a qualified bareword of the form Foo::, but the
  1431.           compiler saw no other uses of that namespace before that point.
  1432.           Perhaps you need to predeclare a package?
  1433.  
  1434.      Can't redefine active sort subroutine %s
  1435.           (F) Perl optimizes the internal handling of sort subroutines and
  1436.           keeps pointers into them.  You tried to redefine one such sort
  1437.           subroutine when it was currently active, which is not allowed.  If
  1438.           you really want to do this, you should write sort { &func } @x
  1439.           instead of sort func @x.
  1440.  
  1441.      Can't use bareword '%s' as %s ref while "strict refs" in use
  1442.           (F) Only hard references are allowed by "strict refs".  Symbolic
  1443.           references are disallowed.  See the _p_e_r_l_r_e_f manpage.
  1444.  
  1445.  
  1446.  
  1447.  
  1448.  
  1449.                                                                        PPPPaaaaggggeeee 22222222
  1450.  
  1451.  
  1452.  
  1453.  
  1454.  
  1455.  
  1456. PPPPEEEERRRRLLLLDDDDEEEELLLLTTTTAAAA((((1111))))                                                      PPPPEEEERRRRLLLLDDDDEEEELLLLTTTTAAAA((((1111))))
  1457.  
  1458.  
  1459.  
  1460.      Cannot resolve method `%s' overloading `%s' in package `%s'
  1461.           (P) Internal error trying to resolve overloading specified by a
  1462.           method name (as opposed to a subroutine reference).
  1463.  
  1464.      Constant subroutine %s redefined
  1465.           (S) You redefined a subroutine which had previously been eligible
  1466.           for inlining.  See the section on _C_o_n_s_t_a_n_t _F_u_n_c_t_i_o_n_s in the _p_e_r_l_s_u_b
  1467.           manpage for commentary and workarounds.
  1468.  
  1469.      Constant subroutine %s undefined
  1470.           (S) You undefined a subroutine which had previously been eligible
  1471.           for inlining.  See the section on _C_o_n_s_t_a_n_t _F_u_n_c_t_i_o_n_s in the _p_e_r_l_s_u_b
  1472.           manpage for commentary and workarounds.
  1473.  
  1474.      Copy method did not return a reference
  1475.           (F) The method which overloads "=" is buggy. See the section on _C_o_p_y
  1476.           _C_o_n_s_t_r_u_c_t_o_r in the _o_v_e_r_l_o_a_d manpage.
  1477.  
  1478.      Died (F) You passed _d_i_e() an empty string (the equivalent of die "") or
  1479.           you called it with no args and both $@ and $_ were empty.
  1480.  
  1481.      Exiting pseudo-block via %s
  1482.           (W) You are exiting a rather special block construct (like a sort
  1483.           block or subroutine) by unconventional means, such as a goto, or a
  1484.           loop control statement.  See the sort entry in the _p_e_r_l_f_u_n_c manpage.
  1485.  
  1486.      Identifier too long
  1487.           (F) Perl limits identifiers (names for variables, functions, etc.)
  1488.           to 252 characters for simple names, somewhat more for compound names
  1489.           (like $A::B).  You've exceeded Perl's limits.  Future versions of
  1490.           Perl are likely to eliminate these arbitrary limitations.
  1491.  
  1492.      Illegal character %s (carriage return)
  1493.           (F) A carriage return character was found in the input.  This is an
  1494.           error, and not a warning, because carriage return characters can
  1495.           break multi-line strings, including here documents (e.g., print
  1496.           <<EOF;).
  1497.  
  1498.      Illegal switch in PERL5OPT: %s
  1499.           (X) The PERL5OPT environment variable may only be used to set the
  1500.           following switches: ----[[[[DDDDIIIIMMMMUUUUddddmmmmwwww]]]].
  1501.  
  1502.      Integer overflow in hex number
  1503.           (S) The literal hex number you have specified is too big for your
  1504.           architecture. On a 32-bit architecture the largest hex literal is
  1505.           0xFFFFFFFF.
  1506.  
  1507.      Integer overflow in octal number
  1508.           (S) The literal octal number you have specified is too big for your
  1509.           architecture. On a 32-bit architecture the largest octal literal is
  1510.           037777777777.
  1511.  
  1512.  
  1513.  
  1514.  
  1515.                                                                        PPPPaaaaggggeeee 22223333
  1516.  
  1517.  
  1518.  
  1519.  
  1520.  
  1521.  
  1522. PPPPEEEERRRRLLLLDDDDEEEELLLLTTTTAAAA((((1111))))                                                      PPPPEEEERRRRLLLLDDDDEEEELLLLTTTTAAAA((((1111))))
  1523.  
  1524.  
  1525.  
  1526.      internal error: glob failed
  1527.           (P) Something went wrong with the external _p_r_o_g_r_a_m(s) used for glob
  1528.           and <*.c>.  This may mean that your csh (C shell) is broken.  If so,
  1529.           you should change all of the csh-related variables in config.sh:  If
  1530.           you have tcsh, make the variables refer to it as if it were csh
  1531.           (e.g. full_csh='/usr/bin/tcsh'); otherwise, make them all empty
  1532.           (except that d_csh should be 'undef') so that Perl will think csh is
  1533.           missing.  In either case, after editing config.sh, run ./Configure
  1534.           -S and rebuild Perl.
  1535.  
  1536.      Invalid conversion in %s: "%s"
  1537.           (W) Perl does not understand the given format conversion.  See the
  1538.           sprintf entry in the _p_e_r_l_f_u_n_c manpage.
  1539.  
  1540.      Invalid type in pack: '%s'
  1541.           (F) The given character is not a valid pack type.  See the pack
  1542.           entry in the _p_e_r_l_f_u_n_c manpage.
  1543.  
  1544.      Invalid type in unpack: '%s'
  1545.           (F) The given character is not a valid unpack type.  See the unpack
  1546.           entry in the _p_e_r_l_f_u_n_c manpage.
  1547.  
  1548.      Name "%s::%s" used only once: possible typo
  1549.           (W) Typographical errors often show up as unique variable names.  If
  1550.           you had a good reason for having a unique name, then just mention it
  1551.           again somehow to suppress the message (the use vars pragma is
  1552.           provided for just this purpose).
  1553.  
  1554.      Null picture in formline
  1555.           (F) The first argument to formline must be a valid format picture
  1556.           specification.  It was found to be empty, which probably means you
  1557.           supplied it an uninitialized value.  See the _p_e_r_l_f_o_r_m manpage.
  1558.  
  1559.      Offset outside string
  1560.           (F) You tried to do a read/write/send/recv operation with an offset
  1561.           pointing outside the buffer.  This is difficult to imagine.  The
  1562.           sole exception to this is that sysread()ing past the buffer will
  1563.           extend the buffer and zero pad the new area.
  1564.  
  1565.      Out of memory!
  1566.           (X|F) The _m_a_l_l_o_c() function returned 0, indicating there was
  1567.           insufficient remaining memory (or virtual memory) to satisfy the
  1568.           request.
  1569.  
  1570.           The request was judged to be small, so the possibility to trap it
  1571.           depends on the way Perl was compiled.  By default it is not
  1572.           trappable.  However, if compiled for this, Perl may use the contents
  1573.           of $^M as an emergency pool after _d_i_e()ing with this message.  In
  1574.           this case the error is trappable _o_n_c_e.
  1575.  
  1576.  
  1577.  
  1578.  
  1579.  
  1580.  
  1581.                                                                        PPPPaaaaggggeeee 22224444
  1582.  
  1583.  
  1584.  
  1585.  
  1586.  
  1587.  
  1588. PPPPEEEERRRRLLLLDDDDEEEELLLLTTTTAAAA((((1111))))                                                      PPPPEEEERRRRLLLLDDDDEEEELLLLTTTTAAAA((((1111))))
  1589.  
  1590.  
  1591.  
  1592.      Out of memory during request for %s
  1593.           (F) The _m_a_l_l_o_c() function returned 0, indicating there was
  1594.           insufficient remaining memory (or virtual memory) to satisfy the
  1595.           request. However, the request was judged large enough (compile-time
  1596.           default is 64K), so a possibility to shut down by trapping this
  1597.           error is granted.
  1598.  
  1599.      panic: frexp
  1600.           (P) The library function _f_r_e_x_p() failed, making _p_r_i_n_t_f("%f")
  1601.           impossible.
  1602.  
  1603.      Possible attempt to put comments in qw() list
  1604.           (W) _q_w() lists contain items separated by whitespace; as with
  1605.           literal strings, comment characters are not ignored, but are instead
  1606.           treated as literal data.  (You may have used different delimiters
  1607.           than the parentheses shown here; braces are also frequently used.)
  1608.  
  1609.           You probably wrote something like this:
  1610.  
  1611.               @list = qw(
  1612.                   a # a comment
  1613.                   b # another comment
  1614.               );
  1615.  
  1616.           when you should have written this:
  1617.  
  1618.               @list = qw(
  1619.                   a
  1620.                   b
  1621.               );
  1622.  
  1623.           If you really want comments, build your list the old-fashioned way,
  1624.           with quotes and commas:
  1625.  
  1626.               @list = (
  1627.                   'a',    # a comment
  1628.                   'b',    # another comment
  1629.               );
  1630.  
  1631.  
  1632.      Possible attempt to separate words with commas
  1633.           (W) _q_w() lists contain items separated by whitespace; therefore
  1634.           commas aren't needed to separate the items. (You may have used
  1635.           different delimiters than the parentheses shown here; braces are
  1636.           also frequently used.)
  1637.  
  1638.           You probably wrote something like this:
  1639.  
  1640.               qw! a, b, c !;
  1641.  
  1642.           which puts literal commas into some of the list items.  Write it
  1643.           without commas if you don't want them to appear in your data:
  1644.  
  1645.  
  1646.  
  1647.                                                                        PPPPaaaaggggeeee 22225555
  1648.  
  1649.  
  1650.  
  1651.  
  1652.  
  1653.  
  1654. PPPPEEEERRRRLLLLDDDDEEEELLLLTTTTAAAA((((1111))))                                                      PPPPEEEERRRRLLLLDDDDEEEELLLLTTTTAAAA((((1111))))
  1655.  
  1656.  
  1657.  
  1658.               qw! a b c !;
  1659.  
  1660.  
  1661.      Scalar value @%s{%s} better written as $%s{%s}
  1662.           (W) You've used a hash slice (indicated by @) to select a single
  1663.           element of a hash.  Generally it's better to ask for a scalar value
  1664.           (indicated by $).  The difference is that $foo{&bar} always behaves
  1665.           like a scalar, both when assigning to it and when evaluating its
  1666.           argument, while @foo{&bar} behaves like a list when you assign to
  1667.           it, and provides a list context to its subscript, which can do weird
  1668.           things if you're expecting only one subscript.
  1669.  
  1670.      Stub found while resolving method `%s' overloading `%s' in package `%s'
  1671.           (P) Overloading resolution over @ISA tree may be broken by importing
  1672.           stubs.  Stubs should never be implicitely created, but explicit
  1673.           calls to can may break this.
  1674.  
  1675.      Too late for "----TTTT" option
  1676.           (X) The #! line (or local equivalent) in a Perl script contains the
  1677.           ----TTTT option, but Perl was not invoked with ----TTTT in its argument list.
  1678.           This is an error because, by the time Perl discovers a ----TTTT in a
  1679.           script, it's too late to properly taint everything from the
  1680.           environment.  So Perl gives up.
  1681.  
  1682.      untie attempted while %d inner references still exist
  1683.           (W) A copy of the object returned from tie (or tied) was still valid
  1684.           when untie was called.
  1685.  
  1686.      Unrecognized character %s
  1687.           (F) The Perl parser has no idea what to do with the specified
  1688.           character in your Perl script (or eval).  Perhaps you tried to run a
  1689.           compressed script, a binary program, or a directory as a Perl
  1690.           program.
  1691.  
  1692.      Unsupported function fork
  1693.           (F) Your version of executable does not support forking.
  1694.  
  1695.           Note that under some systems, like OS/2, there may be different
  1696.           flavors of Perl executables, some of which may support fork, some
  1697.           not. Try changing the name you call Perl by to perl_, perl__, and so
  1698.           on.
  1699.  
  1700.      Use of "$$<digit>" to mean "${$}<digit>" is deprecated
  1701.           (D) Perl versions before 5.004 misinterpreted any type marker
  1702.           followed by "$" and a digit.  For example, "$$0" was incorrectly
  1703.           taken to mean "${$}0" instead of "${$0}".  This bug is (mostly)
  1704.           fixed in Perl 5.004.
  1705.  
  1706.           However, the developers of Perl 5.004 could not fix this bug
  1707.           completely, because at least two widely-used modules depend on the
  1708.           old meaning of "$$0" in a string.  So Perl 5.004 still interprets
  1709.           "$$<digit>" in the old (broken) way inside strings; but it generates
  1710.  
  1711.  
  1712.  
  1713.                                                                        PPPPaaaaggggeeee 22226666
  1714.  
  1715.  
  1716.  
  1717.  
  1718.  
  1719.  
  1720. PPPPEEEERRRRLLLLDDDDEEEELLLLTTTTAAAA((((1111))))                                                      PPPPEEEERRRRLLLLDDDDEEEELLLLTTTTAAAA((((1111))))
  1721.  
  1722.  
  1723.  
  1724.           this message as a warning.  And in Perl 5.005, this special
  1725.           treatment will cease.
  1726.  
  1727.      Value of %s can be "0"; test with defined()
  1728.           (W) In a conditional expression, you used <HANDLE>, <*> (glob),
  1729.           each(), or readdir() as a boolean value.  Each of these constructs
  1730.           can return a value of "0"; that would make the conditional
  1731.           expression false, which is probably not what you intended.  When
  1732.           using these constructs in conditional expressions, test their values
  1733.           with the defined operator.
  1734.  
  1735.      Variable "%s" may be unavailable
  1736.           (W) An inner (nested) _a_n_o_n_y_m_o_u_s subroutine is inside a _n_a_m_e_d
  1737.           subroutine, and outside that is another subroutine; and the
  1738.           anonymous (innermost) subroutine is referencing a lexical variable
  1739.           defined in the outermost subroutine.  For example:
  1740.  
  1741.              sub outermost { my $a; sub middle { sub { $a } } }
  1742.  
  1743.           If the anonymous subroutine is called or referenced (directly or
  1744.           indirectly) from the outermost subroutine, it will share the
  1745.           variable as you would expect.  But if the anonymous subroutine is
  1746.           called or referenced when the outermost subroutine is not active, it
  1747.           will see the value of the shared variable as it was before and
  1748.           during the *first* call to the outermost subroutine, which is
  1749.           probably not what you want.
  1750.  
  1751.           In these circumstances, it is usually best to make the middle
  1752.           subroutine anonymous, using the sub {} syntax.  Perl has specific
  1753.           support for shared variables in nested anonymous subroutines; a
  1754.           named subroutine in between interferes with this feature.
  1755.  
  1756.      Variable "%s" will not stay shared
  1757.           (W) An inner (nested) _n_a_m_e_d subroutine is referencing a lexical
  1758.           variable defined in an outer subroutine.
  1759.  
  1760.           When the inner subroutine is called, it will probably see the value
  1761.           of the outer subroutine's variable as it was before and during the
  1762.           *first* call to the outer subroutine; in this case, after the first
  1763.           call to the outer subroutine is complete, the inner and outer
  1764.           subroutines will no longer share a common value for the variable.
  1765.           In other words, the variable will no longer be shared.
  1766.  
  1767.           Furthermore, if the outer subroutine is anonymous and references a
  1768.           lexical variable outside itself, then the outer and inner
  1769.           subroutines will _n_e_v_e_r share the given variable.
  1770.  
  1771.           This problem can usually be solved by making the inner subroutine
  1772.           anonymous, using the sub {} syntax.  When inner anonymous subs that
  1773.           reference variables in outer subroutines are called or referenced,
  1774.           they are automatically rebound to the current values of such
  1775.           variables.
  1776.  
  1777.  
  1778.  
  1779.                                                                        PPPPaaaaggggeeee 22227777
  1780.  
  1781.  
  1782.  
  1783.  
  1784.  
  1785.  
  1786. PPPPEEEERRRRLLLLDDDDEEEELLLLTTTTAAAA((((1111))))                                                      PPPPEEEERRRRLLLLDDDDEEEELLLLTTTTAAAA((((1111))))
  1787.  
  1788.  
  1789.  
  1790.      Warning: something's wrong
  1791.           (W) You passed _w_a_r_n() an empty string (the equivalent of warn "") or
  1792.           you called it with no args and $_ was empty.
  1793.  
  1794.      Ill-formed logical name |%s| in prime_env_iter
  1795.           (W) A warning peculiar to VMS.  A logical name was encountered when
  1796.           preparing to iterate over %ENV which violates the syntactic rules
  1797.           governing logical names.  Since it cannot be translated normally, it
  1798.           is skipped, and will not appear in %ENV.  This may be a benign
  1799.           occurrence, as some software packages might directly modify logical
  1800.           name tables and introduce nonstandard names, or it may indicate that
  1801.           a logical name table has been corrupted.
  1802.  
  1803.      Got an error from DosAllocMem
  1804.           (P) An error peculiar to OS/2.  Most probably you're using an
  1805.           obsolete version of Perl, and this should not happen anyway.
  1806.  
  1807.      Malformed PERLLIB_PREFIX
  1808.           (F) An error peculiar to OS/2.  PERLLIB_PREFIX should be of the form
  1809.  
  1810.               prefix1;prefix2
  1811.  
  1812.           or
  1813.  
  1814.               prefix1 prefix2
  1815.  
  1816.           with nonempty prefix1 and prefix2.  If prefix1 is indeed a prefix of
  1817.           a builtin library search path, prefix2 is substituted.  The error
  1818.           may appear if components are not found, or are too long.  See
  1819.           "PERLLIB_PREFIX" in _R_E_A_D_M_E._o_s_2.
  1820.  
  1821.      PERL_SH_DIR too long
  1822.           (F) An error peculiar to OS/2. PERL_SH_DIR is the directory to find
  1823.           the sh-shell in.  See "PERL_SH_DIR" in _R_E_A_D_M_E._o_s_2.
  1824.  
  1825.      Process terminated by SIG%s
  1826.           (W) This is a standard message issued by OS/2 applications, while
  1827.           *nix applications die in silence.  It is considered a feature of the
  1828.           OS/2 port.  One can easily disable this by appropriate sighandlers,
  1829.           see the section on _S_i_g_n_a_l_s in the _p_e_r_l_i_p_c manpage.  See also
  1830.           "Process terminated by SIGTERM/SIGINT" in _R_E_A_D_M_E._o_s_2.
  1831.  
  1832. BBBBUUUUGGGGSSSS
  1833.      If you find what you think is a bug, you might check the headers of
  1834.      recently posted articles in the comp.lang.perl.misc newsgroup.  There may
  1835.      also be information at http://www.perl.com/perl/, the Perl Home Page.
  1836.  
  1837.      If you believe you have an unreported bug, please run the ppppeeeerrrrllllbbbbuuuugggg program
  1838.      included with your release.  Make sure you trim your bug down to a tiny
  1839.      but sufficient test case.  Your bug report, along with the output of perl
  1840.      -V, will be sent off to <_p_e_r_l_b_u_g@_p_e_r_l._c_o_m> to be analysed by the Perl
  1841.      porting team.
  1842.  
  1843.  
  1844.  
  1845.                                                                        PPPPaaaaggggeeee 22228888
  1846.  
  1847.  
  1848.  
  1849.  
  1850.  
  1851.  
  1852. PPPPEEEERRRRLLLLDDDDEEEELLLLTTTTAAAA((((1111))))                                                      PPPPEEEERRRRLLLLDDDDEEEELLLLTTTTAAAA((((1111))))
  1853.  
  1854.  
  1855.  
  1856. SSSSEEEEEEEE AAAALLLLSSSSOOOO
  1857.      The _C_h_a_n_g_e_s file for exhaustive details on what changed.
  1858.  
  1859.      The _I_N_S_T_A_L_L file for how to build Perl.  This file has been significantly
  1860.      updated for 5.004, so even veteran users should look through it.
  1861.  
  1862.      The _R_E_A_D_M_E file for general stuff.
  1863.  
  1864.      The _C_o_p_y_i_n_g file for copyright information.
  1865.  
  1866. HHHHIIIISSSSTTTTOOOORRRRYYYY
  1867.      Constructed by Tom Christiansen, grabbing material with permission from
  1868.      innumerable contributors, with kibitzing by more than a few Perl porters.
  1869.  
  1870.      Last update: Wed May 14 11:14:09 EDT 1997
  1871.  
  1872.  
  1873.  
  1874.  
  1875.  
  1876.  
  1877.  
  1878.  
  1879.  
  1880.  
  1881.  
  1882.  
  1883.  
  1884.  
  1885.  
  1886.  
  1887.  
  1888.  
  1889.  
  1890.  
  1891.  
  1892.  
  1893.  
  1894.  
  1895.  
  1896.  
  1897.  
  1898.  
  1899.  
  1900.  
  1901.  
  1902.  
  1903.  
  1904.  
  1905.  
  1906.  
  1907.  
  1908.  
  1909.  
  1910.  
  1911.                                                                        PPPPaaaaggggeeee 22229999
  1912.  
  1913.  
  1914.  
  1915.  
  1916.  
  1917.  
  1918. PPPPEEEERRRRLLLLDDDDEEEELLLLTTTTAAAA((((1111))))                                                      PPPPEEEERRRRLLLLDDDDEEEELLLLTTTTAAAA((((1111))))
  1919.  
  1920.  
  1921.  
  1922.  
  1923.  
  1924.  
  1925.  
  1926.  
  1927.  
  1928.  
  1929.  
  1930.  
  1931.  
  1932.  
  1933.  
  1934.  
  1935.  
  1936.  
  1937.  
  1938.  
  1939.  
  1940.  
  1941.  
  1942.  
  1943.  
  1944.  
  1945.  
  1946.  
  1947.  
  1948.  
  1949.  
  1950.  
  1951.  
  1952.  
  1953.  
  1954.  
  1955.  
  1956.  
  1957.  
  1958.  
  1959.  
  1960.  
  1961.  
  1962.  
  1963.  
  1964.  
  1965.  
  1966.  
  1967.  
  1968.  
  1969.  
  1970.  
  1971.  
  1972.  
  1973.  
  1974.                                                                        PPPPaaaaggggeeee 33330000
  1975.  
  1976.  
  1977.  
  1978.  
  1979.  
  1980.  
  1981.